﻿

Namespace YahooManaged.Finance.Screener.StockCriterias


    ''' <summary>
    ''' Criteria class for earnings per share (trailing twelve month)
    ''' </summary>
    ''' <remarks></remarks>
    Public Class EPS_ttmCriteria
        Inherits StockDigitCriteriaDefinition

        Public Overrides ReadOnly Property DisplayName As String
            Get
                Return "EPS (ttm) Criteria"
            End Get
        End Property

        Public Overrides ReadOnly Property CriteriaName As String
            Get
                Return "EPS (ttm)"
            End Get
        End Property

        Public Overrides ReadOnly Property CriteriaGroup As StockScreenerCriteriaGroup
            Get
                Return StockScreenerCriteriaGroup.IncomeStatements
            End Get
        End Property
        Public Overrides ReadOnly Property ProvidedQuoteProperties As QuoteProperty()
            Get
                Return {QuoteProperty.Symbol, _
                        QuoteProperty.Name, _
                        QuoteProperty.LastTradePriceOnly, _
                        QuoteProperty.LastTradeTime, _
                        QuoteProperty.MarketCapitalization, _
                        QuoteProperty.DilutedEPS}
            End Get
        End Property
        Public Overrides ReadOnly Property ProvidedScreenerProperties As StockScreenerProperty()
            Get
                Return {StockScreenerProperty.ReturnOnEquity, _
                        StockScreenerProperty.ReturnOnAssets, _
                        StockScreenerProperty.ForwardPriceToEarningsRatio}
            End Get
        End Property

        Public Sub New()
            MyBase.New("w"c)
        End Sub
    End Class

    ''' <summary>
    ''' Criteria class for earnings per share (most recent quarter)
    ''' </summary>
    ''' <remarks></remarks>
    Public Class EPS_mrqCriteria
        Inherits StockDigitCriteriaDefinition

        Public Overrides ReadOnly Property DisplayName As String
            Get
                Return "EPS (mrq) Criteria"
            End Get
        End Property

        Public Overrides ReadOnly Property CriteriaName As String
            Get
                Return "EPS (mrq)"
            End Get
        End Property

        Public Overrides ReadOnly Property CriteriaGroup As StockScreenerCriteriaGroup
            Get
                Return StockScreenerCriteriaGroup.IncomeStatements
            End Get
        End Property
        Public Overrides ReadOnly Property ProvidedQuoteProperties As QuoteProperty()
            Get
                Return {QuoteProperty.Symbol, _
                        QuoteProperty.Name, _
                        QuoteProperty.LastTradePriceOnly, _
                        QuoteProperty.LastTradeTime, _
                        QuoteProperty.MarketCapitalization}
            End Get
        End Property
        Public Overrides ReadOnly Property ProvidedScreenerProperties As StockScreenerProperty()
            Get
                Return {StockScreenerProperty.ReturnOnEquity, _
                        StockScreenerProperty.ReturnOnAssets, _
                        StockScreenerProperty.ForwardPriceToEarningsRatio, _
                        StockScreenerProperty.EPS_mrq}
            End Get
        End Property

        Public Sub New()
            MyBase.New("8i")
        End Sub
    End Class

    ''' <summary>
    ''' Criteria class for sales (trailing twelve month)
    ''' </summary>
    ''' <remarks></remarks>
    Public Class Sales_ttmCriteria
        Inherits StockDigitCriteriaDefinition

        Public Overrides ReadOnly Property DisplayName As String
            Get
                Return "Sales (ttm) Criteria"
            End Get
        End Property

        Public Overrides ReadOnly Property CriteriaName As String
            Get
                Return "Sales (ttm)"
            End Get
        End Property

        Public Overrides ReadOnly Property CriteriaGroup As StockScreenerCriteriaGroup
            Get
                Return StockScreenerCriteriaGroup.IncomeStatements
            End Get
        End Property
        Public Overrides ReadOnly Property ProvidedQuoteProperties As QuoteProperty()
            Get
                Return {QuoteProperty.Symbol, _
                        QuoteProperty.Name, _
                        QuoteProperty.LastTradePriceOnly, _
                        QuoteProperty.LastTradeTime, _
                        QuoteProperty.MarketCapitalization}
            End Get
        End Property
        Public Overrides ReadOnly Property ProvidedScreenerProperties As StockScreenerProperty()
            Get
                Return {StockScreenerProperty.ReturnOnEquity, _
                        StockScreenerProperty.ReturnOnAssets, _
                        StockScreenerProperty.ForwardPriceToEarningsRatio, _
                        StockScreenerProperty.Sales_ttm}
            End Get
        End Property

        Public Sub New()
            MyBase.New("0"c)
        End Sub
    End Class

    ''' <summary>
    ''' Criteria class for EBITDA (earnings before interest, taxes, depreciation and amortization)
    ''' </summary>
    ''' <remarks></remarks>
    Public Class EBITDACriteria
        Inherits StockDigitCriteriaDefinition

        Public Overrides ReadOnly Property DisplayName As String
            Get
                Return "EBITDA Criteria"
            End Get
        End Property

        Public Overrides ReadOnly Property CriteriaName As String
            Get
                Return "EBITDA"
            End Get
        End Property

        Public Overrides ReadOnly Property CriteriaGroup As StockScreenerCriteriaGroup
            Get
                Return StockScreenerCriteriaGroup.IncomeStatements
            End Get
        End Property
        Public Overrides ReadOnly Property ProvidedQuoteProperties As QuoteProperty()
            Get
                Return {QuoteProperty.Symbol, _
                        QuoteProperty.Name, _
                        QuoteProperty.LastTradePriceOnly, _
                        QuoteProperty.LastTradeTime, _
                        QuoteProperty.MarketCapitalization, _
                        QuoteProperty.EBITDA}
            End Get
        End Property
        Public Overrides ReadOnly Property ProvidedScreenerProperties As StockScreenerProperty()
            Get
                Return {StockScreenerProperty.ReturnOnEquity, _
                        StockScreenerProperty.ReturnOnAssets, _
                        StockScreenerProperty.ForwardPriceToEarningsRatio}
            End Get
        End Property

        Public Sub New()
            MyBase.New("t"c)
        End Sub
    End Class

    ''' <summary>
    ''' Criteria class for gross profit
    ''' </summary>
    ''' <remarks></remarks>
    Public Class GrossProfitCriteria
        Inherits StockDigitCriteriaDefinition

        Public Overrides ReadOnly Property DisplayName As String
            Get
                Return "Gross Profit Criteria"
            End Get
        End Property

        Public Overrides ReadOnly Property CriteriaName As String
            Get
                Return "Gross Profit"
            End Get
        End Property

        Public Overrides ReadOnly Property CriteriaGroup As StockScreenerCriteriaGroup
            Get
                Return StockScreenerCriteriaGroup.IncomeStatements
            End Get
        End Property
        Public Overrides ReadOnly Property ProvidedQuoteProperties As QuoteProperty()
            Get
                Return {QuoteProperty.Symbol, _
                        QuoteProperty.Name, _
                        QuoteProperty.LastTradePriceOnly, _
                        QuoteProperty.LastTradeTime, _
                        QuoteProperty.MarketCapitalization}
            End Get
        End Property
        Public Overrides ReadOnly Property ProvidedScreenerProperties As StockScreenerProperty()
            Get
                Return {StockScreenerProperty.ReturnOnEquity, _
                        StockScreenerProperty.ReturnOnAssets, _
                        StockScreenerProperty.ForwardPriceToEarningsRatio, _
                        StockScreenerProperty.GrossProfit}
            End Get
        End Property

        Public Sub New()
            MyBase.New("8n")
        End Sub
    End Class

    ''' <summary>
    ''' Criteria class for net income
    ''' </summary>
    ''' <remarks></remarks>
    Public Class NetIncomeCriteria
        Inherits StockDigitCriteriaDefinition

        Public Overrides ReadOnly Property DisplayName As String
            Get
                Return "Net Income Criteria"
            End Get
        End Property

        Public Overrides ReadOnly Property CriteriaName As String
            Get
                Return "Net Income"
            End Get
        End Property

        Public Overrides ReadOnly Property CriteriaGroup As StockScreenerCriteriaGroup
            Get
                Return StockScreenerCriteriaGroup.IncomeStatements
            End Get
        End Property
        Public Overrides ReadOnly Property ProvidedQuoteProperties As QuoteProperty()
            Get
                Return {QuoteProperty.Symbol, _
                        QuoteProperty.Name, _
                        QuoteProperty.LastTradePriceOnly, _
                        QuoteProperty.LastTradeTime, _
                        QuoteProperty.MarketCapitalization}
            End Get
        End Property
        Public Overrides ReadOnly Property ProvidedScreenerProperties As StockScreenerProperty()
            Get
                Return {StockScreenerProperty.ReturnOnEquity, _
                        StockScreenerProperty.ReturnOnAssets, _
                        StockScreenerProperty.ForwardPriceToEarningsRatio, _
                        StockScreenerProperty.NetIncome}
            End Get
        End Property

        Public Sub New()
            MyBase.New("8p")
        End Sub
    End Class

    ''' <summary>
    ''' Criteria class for operating income
    ''' </summary>
    ''' <remarks></remarks>
    Public Class OperatingIncomeCriteria
        Inherits StockDigitCriteriaDefinition

        Public Overrides ReadOnly Property DisplayName As String
            Get
                Return "Operating Income Criteria"
            End Get
        End Property

        Public Overrides ReadOnly Property CriteriaName As String
            Get
                Return "Operating Income"
            End Get
        End Property

        Public Overrides ReadOnly Property CriteriaGroup As StockScreenerCriteriaGroup
            Get
                Return StockScreenerCriteriaGroup.IncomeStatements
            End Get
        End Property
        Public Overrides ReadOnly Property ProvidedQuoteProperties As QuoteProperty()
            Get
                Return {QuoteProperty.Symbol, _
                        QuoteProperty.Name, _
                        QuoteProperty.LastTradePriceOnly, _
                        QuoteProperty.LastTradeTime, _
                        QuoteProperty.MarketCapitalization}
            End Get
        End Property
        Public Overrides ReadOnly Property ProvidedScreenerProperties As StockScreenerProperty()
            Get
                Return {StockScreenerProperty.ReturnOnEquity, _
                        StockScreenerProperty.ReturnOnAssets, _
                        StockScreenerProperty.ForwardPriceToEarningsRatio, _
                        StockScreenerProperty.OperatingIncome}
            End Get
        End Property

        Public Sub New()
            MyBase.New("9j")
        End Sub
    End Class


End Namespace